/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 26727
 * Date: 2024-05-12
 * Time: 11:16
 */
class Solution8 {
    public int findLength(int[] nums1, int[] nums2) {
        int m = nums1.length, n = nums2.length;

        //dp[i][j]表示nums1以i为结尾nums2以j为结尾最长重复子数组长度
        int[][] dp = new int[m+1][n+1];

        int ret = 0;
        for(int i = 1; i <= m; i++) {
            for(int j = 1; j <= n; j++) {
                if(nums1[i-1] == nums2[j-1]) {
                    dp[i][j] = dp[i-1][j-1]+1;
                    ret = Math.max(ret,dp[i][j]);
                }
            }
        }
        return ret;
    }
}
